THE 'CONTRA' SPREAD GUN! v1.0 8/12/96 by TigerShark (aka SuperHero#1) (tigershark@shelby.net) === DESCRIPTION ========== In Rememberance of that Wonderful Nintendo/Arcade Game, 'Contra', I've developed a QuakeC Add-in for the All-Powerful Spread Gun! (Sorry, no Metal Eagles to shoot down here) About the Gun: The Gun itself is toggled with the Rocket Launcher with an Impulse 190 command. Each Shot Takes 5 Cells, and won't fire if you don't have any. The Homing Spread Gun is just that. It is like the Spread Gun, but Homes in on it's targets and uses 25 cells. Extra - The DOG ROCKET. I added this in just for fun last night. It's kinda crazy, only for fun (hopefully ). It's a flying, homing, dog... A good laugh for all. Use it just like the Spread Gun switching. (imp 191) === FILE STRUCTURE ======= The files included are in QC (QuakeC) Form and need to be compiled to create the PROGS.DAT (Duh) If you are lost from here on, go to #quakec and annoy the guys there . The main file is SPREDGUN.QC, but changes need to be made to WEAPONS.QC and DEFS.QC (Explained Below) Plus, the Media Files (the WAV + MDL) need to be moved to the appropriate directory. I've explained the installation pretty comprehensively and extensively (or at least to me) and I'm sorry if it takes you advanced quakers more then 2 minutes to put it in. Adjustments Needed to be Made: PROGS.SRC - Add in SPREDGUN.QC in the line before WEAPONS.QC so that it will compile into the PROGS.DAT. SPREDGUN.QC - Move to the Compile Directory. WEAPONS.QC - Need to Add in a Few Lines. See Below. DEFS.QC - Need to Add in a Few Lines. See Below. SPREDGUN.WAV - Move to SOUND\WEAPONS\ under the game directory. SPREDGUN.MDL - Move to PROGS\ under the game directory (The Game Directory is the one specified on the command line QUAKE -game GAMEDIRECTORY, and holds the PROGS.DAT in the Root of that Directory) === WEAPONS.QC =========== 1. Two Media files must be PreCached in order for the Spread Gun to work to it's Fullest Potential. The W_Precache command is located at the begining of WEAPONS.QC, and just stick these two lines in the top of the function. precache_sound ("weapons/spredgun.wav"); // spread hiss precache_model ("progs/spredgun.mdl"); //Ball Model for Spread precache_sound ("dog/dattack1.wav"); // Dog (In case of DM) precache_model ("progs/dog.mdl"); //Dog (In case of DM) 2. The 'Switch' Listener Lines must be added in at the rocketfire area. It is located near line 940; (Do a search for player_rocket1, it's like the 3rd instance of it) } else if (self.weapon == IT_ROCKET_LAUNCHER) { player_rocket1(); if (self.spredgun == 9) {W_FireDog();} // if (self.spredgun == 2) {W_FireHomeSpread();}// MAKE IT if (self.spredgun == 1) {W_FireSpread();} // LOOK JUST if (self.spredgun == 0) {W_FireRocket();} // LIKE THIS self.attack_finished = time + 0.8; } else if (self.weapon == IT_LIGHTNING) { 3. Then, Lastly, All you Need is an impulse command to Switch from Rocket- Launcher mode to Spread mode. Put this in the Impulse Command section. (Near line 1170 or so) Set the Impulse Number to any impulse you want, It dosen't matter. if (self.impulse == 190) SwitchSpread(); if (self.impulse == 191) SwitchDog(); === DEFS.QC ============== A Global variable must be added to the structure 'self'. It Should be placed in DEFS.QC at about line 485 (From version packaged with QCC) .float spredgun; just after it should be the comment: // // object stuff // The Ideal way to do it would just do a search for 'object stuff' and then move up a couple lines. (There's only one occurrance of 'object stuff' in DEFS.QC) === CONCLUSION =========== Well, You got it. I've tried to find all the bugs, but If all the people that actually play this mod could email me with suggestions, bug finds, etc. I'll be able to Whip out some more Cool Stuff. tigershark@shelby.net